package com.java8.MethodRef;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.function.BiFunction;
import java.util.function.Function;

/**
 * 静态方法引用
 */
public class demo_1 {

    public static void main(String[] args) {
        //需求：创建一个数组，进行倒序排列
        Integer[] arr = {3, 5, 4, 1, 6, 2};
        //1.函数式接口
//        Arrays.sort(arr,new Comparator<Integer>(){
//            @Override
//            public int compare(Integer o1, Integer o2) {
//                return o2-o1;
//            }
//        });
        //2.lambda 简化
//        Arrays.sort(arr,((o1,o2)->o2-o1));
        //3.方法引用
        Arrays.sort(arr,demo_1::desc);
        System.out.println(Arrays.toString(arr));

        //方法引用(系统的一些第三方的工具类)
        Function<String,Integer> func = Integer::parseInt;
        System.out.println(func.apply("123"));
        System.out.println("-----------------------------");
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"1","2","3","4","5");
        list.stream()
                .map(Integer::parseInt)
                .forEach(s-> System.out.print(s+" "));
    }
    public static int desc(Integer o1,Integer o2){
        return o2-o1;
    }
}
